home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / data / mee / list.plt next >
Text File  |  1995-08-20  |  8KB  |  445 lines

  1. var a[1024*32];
  2. var b[1024];
  3. var c[1024];
  4. var d[1024];
  5. var l[1024];
  6. var s[1024];
  7. var t[1024];
  8. var al[1024];
  9. var ln[1024];
  10. var file[256];
  11. var val[256];
  12. var sp[1];
  13. var cr[1];
  14. var yyyy[4];
  15. var yy[2];
  16. var MM[2];
  17. var dd[2];
  18. var www[3];
  19. var hh[2];
  20. var mm[2];
  21. var ss[2];
  22. var mons[256];
  23. sp:={ };
  24. cr:=@xc({0d});
  25. mons:={ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec};
  26.  
  27. var Date[256];
  28. var MessageID[256];
  29. var From[256];
  30. var To[256];
  31. var Subject[256];
  32. var Path[256];
  33.  
  34. var KTm[256];
  35. var Time[256];
  36. var Subj[256];
  37.  
  38. var Note[256];
  39. var Res[256];
  40. var Title[256];
  41. var oTitle[256];
  42. var Bytes[256];
  43. var Bh[256];
  44.  
  45. var bbstype[256];
  46. var bbsname[256];
  47.  
  48. tab(4);
  49. chat({Yes});
  50.  
  51. %months{[n]
  52. im(@getchar(mons,n*4-2,3));
  53. };
  54. %monnam{[ptn]
  55. im((@nochar(@head(mons,ptn))+3)/4);
  56. };
  57.  
  58. %wdel{[ptna]
  59. val:={No};
  60. case(@getchar(ptna,1,1),
  61.     { },{a:=@getchar(ptna,2);a:=@wdel(a);},
  62.     {\n},{a:=@getchar(ptna,2);a:=@wdel(a);},
  63.     tab,{a:=@getchar(ptna,2);a:=@wdel(a);}
  64. );
  65. im(a);
  66. };
  67.  
  68. %spdel{[t]
  69. case(
  70.     { } = @getchar(t,1,1) ,
  71.     {Yes},    {
  72.         s := @getchar(t,2,);
  73.         s := @spdel(s);
  74.         },
  75.     {No},    {
  76.         s:=t;
  77.         },
  78.     );
  79. im(s);
  80. };
  81.  
  82. %ug{[ptn,n]
  83. im(@getchar({0000000000}|(ptn+0),@nochar(ptn+0)+11-n,n));
  84. };
  85.  
  86. %instr{[ptn,ptn2]
  87. var p[256];
  88. p:=@nochar(ptn);
  89. case(p>=@nochar(ptn2),
  90. {Yes},{
  91.     case(@nochar(@body(ptn,ptn2))=0,
  92.         {Yes},{
  93.             case(@getchar(ptn,p+1-@nochar(ptn2))<>ptn2,
  94.                 {Yes},{p:=0;},
  95.             );
  96.             },
  97.         {No},{
  98.             p:=@nochar(@head(ptn,ptn2))+1;
  99.             }
  100.     );
  101. },
  102. {No},{p:=0}
  103. );
  104.  
  105. im(p);
  106. };
  107.  
  108. %mmmtime{[Bytes]
  109. var yy[2];
  110. var MM[2];
  111. var dd[2];
  112.  
  113. var hh[2];
  114. var mm[2];
  115. var ss[2];
  116. var mon[256];
  117. var time[256];
  118. var date[256];
  119. var keta[256];
  120.  
  121. date:=@body(Bytes,{Date : },{  Author:});
  122. case(@nochar(@body(date,{m}))<>0,
  123.     {Yes},{
  124.             yy:=@ug(@tail(@head(Bytes,{Author:}),{/},{ }),2);
  125.             MM:=@ug(@head(@tail(date,{m }),{/}),2);
  126.             mon:=@months(MM);
  127.             dd:=@ug(@body(Bytes,{/},{/}),2);
  128.  
  129.             time:=@body(Bytes,{Date : },{m });
  130.             keta:=@nochar(time);
  131.             hh:=@head(time,{:})+0;
  132.             case(@getchar(time,keta,1),{p},{hh:=hh+12;});
  133.             hh:=@ug(hh,2);
  134.             mm:=@ug(@tail(@getchar(time,1,keta-1),{:}),2);
  135.             ss:={};
  136.         },
  137.     {No},{
  138.         yy:=@ug(@head(date,{/}),2);
  139.         mon:=@months(@ug(@body(date,{/},{/}),2));
  140.         dd:=@ug(@head(@tail(date,{/}),{ }),2);
  141.         hh:=@ug(@body(date,{ },{:}),2);
  142.         mm:=@ug(@body(date,{:},{:}),2);
  143.         ss:=@ug(@head(@tail(date,{:}),{ }),2);
  144.         }
  145. );
  146.  
  147. im(yy|mon|dd|hh|mm|ss);
  148. };
  149.  
  150. %swap{[org,ptn1,ptn2]
  151.  
  152. s:={};
  153. t:=org;
  154. loop({
  155.     s:=s|@head(t,ptn1);
  156.     t:=@body(t,ptn1);
  157.     case(t<>{},{Yes},{s:=s|ptn2;});
  158.     im(t<>{});
  159. });
  160. im(s);
  161. };
  162.  
  163. %memoput{[a]
  164. mclear(@mlast);
  165. madd(@mlast,a);
  166. mopen(@mlast,0,21,639,400);
  167. waitx(9999);
  168. case(@mcheck=0,{No},{mclose(1);});
  169. };
  170.  
  171. %putlist{[l]
  172. case(ln-@tail(al,{/})<>0,{Yes},{
  173. case(bbstype,
  174.     {DJL},{
  175.         al:=    al|{[}|ln-@tail(al,{/})|{]#}|
  176.             @head(@tail(a,{Subject: }),{\n})|{\n};
  177.         },
  178.     {KTBBS},{
  179.         al:=    al|{[}|ln-@tail(al,{/})|{]#}|
  180.             @head(@tail(a,{Subj: }),{\n})|{\n};
  181.         },
  182.  
  183.     {mmm},{
  184.         al:=    al|{[}|ln-@tail(al,{/})-1|{]#}|
  185.             /*@head(@body(a,{Title: }),{\n})|{\n};*/
  186.         /*@body(Title,{Title: })|{\n};*/
  187.             oTitle|{\n};
  188.         },
  189.     {Tokyobbs},{
  190.         al:=    al|{[}|ln-@tail(al,{/})-1|{]#}|
  191.         /*@getchar(Bh,36)|{\n};*/
  192.         oTitle|{\n};
  193.         Title:=@getchar(Bh,36);
  194.         },
  195.     {BM},{
  196.         al:=    al|{[}|ln-@tail(al,{/})-1|{]#}|
  197.         /*@getchar(Bh,36)|{\n};*/
  198.         oTitle|{\n};
  199.         Title:=@getchar(Bh,36);
  200.         },
  201.     );
  202.     write({d:}|@head(file,{:},{.})|{.lis},al);
  203.     a:={};
  204.  
  205. footnote(oTitle);
  206. wait(1);
  207.  
  208. /*madd(@mlast,al);
  209. mopen(@mlast,0,21,639,400);*/
  210.     }
  211. );
  212. ln:=0;
  213. /*case(@mcheck=0,{No},{mclose(1);});
  214. */
  215. case(bbstype,
  216.     {DJL},{al:=    To|{!fwdnet }|
  217.             @getchar(Date,8,2)|@getchar(Date,4,3)|@getchar(Date,1,2)|
  218.             @getchar(Date,11,2)|@getchar(Date,14,2)|
  219.             {<}|@head(From,{@})|{.}|@body(MessageID,{<},{>})|
  220.             /*{.}|@body(From,{.},{.})|*/{>}|
  221.             file|{/}|l;
  222.         },
  223.     {KTBBS},{al:=    @getchar(@body(@body(Time,{Se}),{: }),1,20)|{ }|
  224.             @getchar(Time,7,2)|
  225.             @months(@getchar(Time,10,2))|
  226.             @getchar(Time,13,2)|
  227. @getchar(({0}|@getchar(Time,16,2)+0),(@nochar(@getchar(Time,16,2)+0)),2)|
  228.             @getchar(Time,19,2)|
  229.             {<}|@tail(KTm,{from: },{ })|{.}|
  230.             @tail(Time,{Section },{:})|{-}|
  231.             @tail(@body(KTm,{#},{ is}),{ })|{@}|
  232.             bbsname|
  233.             {>}|
  234.             file|{/}|l;
  235.         },
  236.     {mmm},
  237.         {al:=@getchar(@spdel(@body(@getchar(Note,10),{},{(})),1,20)|{ }|
  238.             @mmmtime(Bytes)|
  239.             {<}|@head(@body(Bytes,{Author: }),{ })|{.}|
  240. /*
  241.             @body(Res,{RESPONSE:},{ of})+0|{@}|
  242.             @tail(Note,{(},{)})|{-}|@head(@body(Note,{ }),{ },{ })|
  243. */
  244.             @head(@body(Note,{ }),{ },{ })|{-}|@body(Res,{RESPONSE:},{ of})+0|{@}|
  245.             @swap(@tail(Note,{(},{)}),{.},{-})|
  246.  
  247.             /*{.}|bbsname|*/
  248.             {>}|
  249.             file|{/}|l
  250.             ;
  251.         },
  252.     {Tokyobbs},{al:={ }|
  253.             @getchar(Bh,8,2)|@months(@getchar(Bh,11,2))|
  254.             @getchar(Bh,14,2)|
  255.             @getchar(Bh,17,2)|@getchar(Bh,20,2)|
  256.             {<}|@head(@getchar(Bh,26,8),{ })|{.}|
  257.             @tail(@getchar(Bh,1,5),{・})+0|{@}|
  258.             bbsname|
  259.             {>}|
  260.             file|{/}|l;
  261.  
  262.     },
  263.         {BM},{al:={ }|
  264.             @getchar(Bh,8,2)|@months(@getchar(Bh,11,2))|
  265.             @getchar(Bh,14,2)|
  266.             @getchar(Bh,17,2)|@getchar(Bh,20,2)|@getchar(Bh,23,2)|
  267.             {<}|@head(@getchar(Bh,26,8),{ })|{.}|
  268.             @getchar(Bh,1,5)+0|{@}|
  269.             bbsname|
  270.             {>}|
  271.             file|{/}|l;
  272. },
  273.  
  274. );
  275. };
  276.  
  277. %nextr{
  278.     b := @fread;
  279.     case(@nochar(b)>@nochar(@head(b,{\n})),
  280.         {No},{b:=b|@fread;}
  281.     );
  282.     l:=l+1;
  283. };
  284.  
  285.  
  286. /*case(@mcheck=0,{No},{mclose(1);});
  287. *//*mopen(@mlast+1);*/
  288. /*madd(@mlast+1,{});*/
  289.  
  290. var sysdir[128];
  291. sysdir:=@getcdir;
  292.  
  293. file:=@filesel;
  294. file:=@tail(@getcdir,{},{\})|{\}|file;
  295. case(@tail(file,{.}),{LZH},{
  296.         setcdir({d:\tmp});
  297.         command(sysdir|{lha e }|file);
  298.         file:=@filesel;
  299.         }
  300. );
  301.  
  302. case(@tail(file,{.})<>{LOG},{Yes},{bbsname:=@body(file,{.});});
  303. /*a:=@read(file);*/
  304.  
  305. fopen(file);
  306. /*a:=@read(file);*/
  307. l:=0;
  308.  
  309.  
  310.  
  311. loop({
  312.  
  313. /*b:=@head(a,{\n});
  314. a:=@body(a,{\n});
  315. */
  316. /*b:=@read(file,l,1);*/
  317.  
  318.     nextr;
  319.  
  320.     footnote(c);
  321.     case(@head(b,sp),
  322. /*DJLBBS(RLI)*/
  323.         {Date:},{c:=c|{D};Date:=@head(@body(b,sp),cr);},
  324.         {Message-ID:},{c:=c|{M};MessageID:=@head(@body(b,sp),cr);},
  325.         {From:},{c:=c|{F};From:=@head(@body(b,sp),cr);},
  326.         {To:},{c:=c|{T};To:=@head(@body(b,sp),cr);},
  327.         {Subject:},{c:=c|{S};Subject:=@head(@body(b,sp),cr);},
  328.         {Path:},{c:=c|{P};Path:=@head(@body(b,sp),cr)},
  329.  
  330. /*KTBBS*/
  331.         {Message},{c:=c|{KTm};KTm:=@head(b,cr);},
  332.         {Time:},{c:=c|{Time};Time:=@head(b,cr)}, 
  333.         {Subj:},{c:=c|{S};Subj:=@head(b,cr)},
  334.  
  335. /*MMM*/
  336.         {Note},{c:=c|{Mmm};Note:=@head(b,cr)},
  337.         {[},{c:=c|{R};Res:=@head(b,cr)},
  338.         {Title:},{
  339.             c:=c|{Title};
  340.             case(Subject={},
  341.                 {Yes},{oTitle:=Title;},
  342.                 {No},{oTitle:=Subject;Subject:={};}
  343.             );
  344.             Title:=@body(b,{Title: },cr);
  345.             Subject:={};
  346.             }, 
  347.         {Bytes:},{c:=c|{B};Bytes:=@head(b,cr)},
  348.  
  349.         {No.==},{
  350.             nextr;
  351.             case(@head(b,{ })<>{^},{Yes},
  352.                 {c:=c|{Tbbs};Bh:=@head(b,cr);
  353.                 }
  354.             );
  355.             oTitle:=Title;
  356.             Title:=@getchar(Bh,36);
  357.             },
  358.         {-NUM-},{
  359.             nextr;
  360.             case(@head(b,{ })<>{^},{Yes},
  361.                 {c:=c|{Bm};Bh:=@head(b,cr);
  362.                 }
  363.             );
  364.             oTitle:=Title;
  365.             Title:=@getchar(Bh,36);
  366.             },
  367.  
  368.  
  369. /*prt*/
  370.         {YSSC-BBS},{case(ln,0,{ln:=l});},
  371. /**/    {r},{case(ln,0,{ln:=l});},
  372.  
  373.         {[RET]:next},{case(ln,0,{ln:=l});},
  374.         {OPEN>\n},{case(ln,0,{ln:=l});},
  375.  
  376.     );
  377.     case(@instr(c,{DMFTS})<>0,
  378.         {Yes},{
  379.             c:={};
  380.             case(ln,0,{ln:=l-4});
  381.             bbstype:={DJL};
  382.             putlist(l-4);
  383.         /*memoput(@body(a,{},{Date: }));*/
  384.             a:={Date: }|@tail(a,{Date: });
  385.             },
  386.     );
  387.     case(@instr(c,{KTmTimeS})<>0,
  388.         {Yes},{
  389.             c:={};
  390.             case(ln,0,{ln:=l-2});
  391.             bbstype:={KTBBS};
  392.             putlist(l-2);
  393.             a:={Message }|@tail(a,{Message });
  394.             },
  395.     );
  396.     case(@instr(c,{MmmRTitleB})<>0,
  397.         {Yes},{
  398.             c:={};
  399.             case(ln,0,{ln:=l-3});
  400.             bbstype:={mmm};
  401.             putlist(l-3);
  402.             a:={Note }|@tail(a,{Note });
  403.             },
  404.     );
  405.     case(@instr(c,{MmmRTitleSB})<>0,
  406.         {Yes},{
  407.             c:={};
  408.             case(ln,0,{ln:=l-3});
  409.             bbstype:={mmm};
  410.             putlist(l-4);
  411.             a:={Note }|@tail(a,{Note });
  412.             },
  413.     );
  414.     case(@instr(c,{Tbbs})<>0,
  415.         {Yes},{c:={};
  416.             case(ln,0,{ln:=l-1});
  417.             bbstype:={Tokyobbs};
  418.             putlist(l-1);
  419.             a:={No.== }|@tail(a,{No.== });
  420.             },
  421.     );
  422.     case(@instr(c,{Bm})<>0,
  423.         {Yes},{c:={};
  424.             case(ln,0,{ln:=l-1});
  425.             bbstype:={BM};
  426.             putlist(l-1);
  427.             a:={-NUM- }|@tail(a,{-NUM- });
  428.             },
  429.     );
  430.     case(b={},{Yes},{
  431.         c:={};
  432.         case(ln,0,{ln:=l});
  433.         putlist(l);
  434.         
  435.     /*memoput(a);*/
  436.         a:={Date: }|@tail(a,{Date: });
  437.     });
  438.  
  439.  
  440.     a:=a|b;
  441.     im(b<>{});
  442. });
  443. fclose;
  444.  
  445.